package GUI
{
	import DAL.Conexion;
	import DAL.PreguntaCerradaDAO;
	import DAL.RespuestaDAO;
	
	import MUNDO.Partida;
	
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.text.TextField;
	import flash.utils.Timer;

	public class PreguntaCerrada
	{
		//Atributos
		private var _triviador:Triviador = null;
		private var _timer15Seg:Timer = null;
		private var _preguntaLabel:TextField = new TextField();
		private var _opcion1Button:Opcion1Button = new Opcion1Button();
		private var _opcion2Button:Opcion2Button = new Opcion2Button();
		private var _opcion3Button:Opcion3Button = new Opcion3Button();
		private var _opcion4Button:Opcion4Button = new Opcion4Button();
		private var _opcionA:TextField = new TextField();
		private var _opcionB:TextField = new TextField();
		private var _opcionC:TextField = new TextField();
		private var _opcionD:TextField = new TextField();
		private var _aleatorio:Number = new Number();
		
		public function PreguntaCerrada(triviador:Triviador, timer15Seg:Timer)
		{
			_triviador = triviador;
			_timer15Seg = timer15Seg;
		}
		
		public function MostrarPreguntaCerrada(numero:Number):void {
			_triviador.stop();
			_triviador.gotoAndPlay(1,"Escena 4");
			var preguntaCerradaDAO:PreguntaCerradaDAO = new PreguntaCerradaDAO(_triviador, _timer15Seg);
			preguntaCerradaDAO.cargarEnunciadoPreguntaCerrada(Partida.client , "P" + numero);
		}
		
		/**
		 * Muestra en la ventana al usuario los campos para las posibles opciones y la pregunta. Adicional muestra 
		 * los botones para que el usuario escoja la respuesta que quiera. Cada boton es generado con su respectivo evento
		 * para detectar que respuesta escogió el usuario.
		 */
		public function dibujarMostrarPreguntaCerrada(enunciado:String, opcionA:String, opcionB:String, opcionC:String, opcionD:String):void {
			var cerrada : String = "cerrada";
			//Construccion de la pregunta cerrada
			_preguntaLabel.height = 60;
			_preguntaLabel.width = 500;
			_preguntaLabel.border = true;
			_preguntaLabel.borderColor = 0xD7A500;
			_preguntaLabel.textColor = 0xD7A500;
			_preguntaLabel.background = true;
			_preguntaLabel.backgroundColor = 0x000000;
			_preguntaLabel.x = 14;
			_preguntaLabel.y = 20;
			_preguntaLabel.multiline = true;
			_preguntaLabel.wordWrap = true;
			_preguntaLabel.selectable = false;
			_preguntaLabel.setTextFormat(Utils.formatearTextos());
			_preguntaLabel.text = enunciado;
			
			_opcionA.height = 30;
			_opcionA.width = 370;
			_opcionA.border = true;
			_opcionA.borderColor = 0xD7A500;
			_opcionA.textColor = 0xD7A500;
			_opcionA.background = true;
			_opcionA.backgroundColor = 0x000000;
			_opcionA.x = 20;
			_opcionA.y = 130;
			_opcionA.text = opcionA;
			
			_opcionB.height = 30;
			_opcionB.width = 370;
			_opcionB.border = true;
			_opcionB.borderColor = 0xD7A500;
			_opcionB.textColor = 0xD7A500;
			_opcionB.background = true;
			_opcionB.backgroundColor = 0x000000;
			_opcionB.x = 20;
			_opcionB.y = 190;
			_opcionB.text = opcionB;
			
			_opcion3Button.x = 20;
			_opcion3Button.y = 230;
			
			_opcionC.height = 30;
			_opcionC.width = 370;
			_opcionC.border = true;
			_opcionC.borderColor = 0xD7A500;
			_opcionC.textColor = 0xD7A500;
			_opcionC.background = true;
			_opcionC.backgroundColor = 0x000000;
			_opcionC.x = 20;
			_opcionC.y = 240;
			_opcionC.text = opcionC;

			_opcion4Button.x = 20;
			_opcion4Button.y = 280;
			
			_opcionD.height = 30;
			_opcionD.width = 370;
			_opcionD.border = true;
			_opcionD.borderColor = 0xD7A500;
			_opcionD.textColor = 0xD7A500;
			_opcionD.background = true;
			_opcionD.backgroundColor = 0x000000;
			_opcionD.x = 20;
			_opcionD.y = 290;
			_opcionD.text = opcionD;
			
			_triviador.addChild(_preguntaLabel);
			_triviador.addChild(_opcionA);
			_triviador.addChild(_opcionB);
			_triviador.addChild(_opcionC);
			_triviador.addChild(_opcionD);
			_triviador.addChild(_opcion1Button);
			_triviador.addChild(_opcion2Button);
			_triviador.addChild(_opcion3Button);
			_triviador.addChild(_opcion4Button);
			
			_opcion1Button.addEventListener(MouseEvent.CLICK, funcionAlHacerClickA);	
			_opcion2Button.addEventListener(MouseEvent.CLICK, funcionAlHacerClickB);
			_opcion3Button.addEventListener(MouseEvent.CLICK, funcionAlHacerClickC);
			_opcion4Button.addEventListener(MouseEvent.CLICK, funcionAlHacerClickD);
		}
		
		function funcionAlHacerClickA(event:MouseEvent):void
		{ 
			_triviador.stop();
			_triviador.gotoAndStop(2,"Escena 6");
			_timer15Seg.stop();
			_timer15Seg.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			trace ("Respuesta ");
			trace (" ");
			trace ("HAS SELECCIONADO LA OPCION (A):  " + _opcionA.text );
			var validar:RespuestaDAO = new RespuestaDAO(_opcionA.text , "P"+_aleatorio , "cerrada", _triviador);
			if (validar.perdio == true)
			{
				trace("Respondio mal");
				_triviador.gotoAndStop(1,"Escena 7");
			}
		}
		
		function funcionAlHacerClickB(event:MouseEvent):void
		{ 
			_triviador.stop();
			_triviador.gotoAndStop(2,"Escena 6");
			_timer15Seg.stop();
			_timer15Seg.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			trace ("Respuesta ");
			trace (" ");
			trace ("HAS SELECCIONADO LA OPCION (B):  " + _opcionB.text );
			var validar:RespuestaDAO = new RespuestaDAO(_opcionB.text , "P"+_aleatorio , "cerrada", _triviador);
			if (validar.perdio == true)
			{
				trace("Respondio mal");
				_triviador.gotoAndStop(1,"Escena 7");
			}
		}
		
		function funcionAlHacerClickC(event:MouseEvent):void
		{ 
			_triviador.stop();
			_triviador.gotoAndStop(2,"Escena 6");
			_timer15Seg.stop();
			_timer15Seg.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			trace ("Respuesta ");
			trace (" ");
			trace ("HAS SELECCIONADO LA OPCION (C):  " + _opcionC.text );
			var validar:RespuestaDAO = new RespuestaDAO(_opcionC.text , "P"+_aleatorio , "cerrada", _triviador);
			if (validar.perdio == true)
			{
				trace("Respondio mal");
				_triviador.gotoAndStop(1,"Escena 7");
			}
		}
		
		function funcionAlHacerClickD(event:MouseEvent):void
		{ 
			_triviador.stop();
			_triviador.gotoAndStop(2,"Escena 6");
			_timer15Seg.stop();
			_timer15Seg.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			trace ("Respuesta ");
			trace (" ");
			trace ("HAS SELECCIONADO LA OPCION (D):  " + _opcionD.text );
			var validar:RespuestaDAO = new RespuestaDAO(_opcionD.text , "P"+_aleatorio , "cerrada", _triviador);
			if (validar.perdio == true)
			{
				trace("Respondio mal");
				_triviador.gotoAndStop(1,"Escena 7");
			}
		}
		
		public function onTimerComplete(event:TimerEvent):void 
		{ 
			trace("Time's Up!");
			var conexion:Conexion = new Conexion(_triviador);
			conexion.enviarPerderCerradas();
			trace("Tiempo agotado PREGUNTA CERRADA");
			_triviador.gotoAndStop(1,"Escena 7");
		}
	}
}